home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************/
- /* El programa VISOR permite la visualización de imágenes grabadas */
- /* con el programa FRACTAL. */
- /***************************************************************************/
-
-
- #include <graphics.h>
- #include <bios.h>
- #include <ctype.h>
- #include <teclas.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <stdio.h>
- #include <dos.h>
-
- void main()
- {
-
- unsigned char
- frac[30000], /*Array que sirve para multiples almacenamientos.*/
- limpia_texto[6500]; /*Limpia la linea de estado.*/
-
- FILE
- *archivo; /*Gestiona todos los ficheros del programa.*/
-
- union
- {
- int i;
- char c;
- } tecla_pulsada; /*Gestiona las pulsaciones del teclado.*/
-
- char
- nombre[13], /*Gestiona el nombre del archivo.*/
- borra_ch[90]; /*Borra un caracter.*/
-
- int
- driver=VGA, /*Controlador y modo para VGA 640x480.*/
- modo=VGAHI,
- x, /*Situación de los caracteres del nombre.*/
- n, /*Número de caracter del nombre.*/
- fin; /*Gestiona la salida del bucle del nombre.*/
-
- unsigned
- num_char; /*Número de caracteres del fichero.*/
-
- /***************************************************************************/
-
-
- clrscr();
-
- registerbgidriver(EGAVGA_driver);
-
- initgraph(&driver,&modo,"");
- getimage(375,465,383,475,borra_ch);
- getimage(1,465,628,475,limpia_texto);
- rectangle(0,10,639,23);
- rectangle(0,463,639,476);
- rectangle(220,130,421,331);
- setcolor(9);
- outtextxy(1,13," Utilidad VISOR Javier Trujillo-1992");
-
- /***************************************************************************/
-
- for(;;)
- {
- for(n=0;n<13;n++)
- nombre[n]='\0';
- n=0;
- fin=0;
- x=375;
- putimage(1,465,limpia_texto,0);
- outtextxy(1,466," F3-Cargar Archivo F10-Salir al dos");
- while((tecla_pulsada.i=bioskey(0))!=F3)
- {
- switch(tecla_pulsada.c)
- {
- case 0:
- switch(tecla_pulsada.i)
- {
- case F3:
- break;
- case F10:
- restorecrtmode();
- printf("¡Hasta pronto!\n\n");
- exit(0);
- default:
- break;
- }
- default:
- putch('\a');
- break;
- };
- };
- putimage(1,465,limpia_texto,0);
- outtextxy(1,466," Escriba el nombre del archivo y pulse INTRO: .frc ESCAPE-Cancelar");
- setcolor(11);
-
- do
- {
- tecla_pulsada.i = bioskey(0);
- if ((n < 8)&&(isalnum(tecla_pulsada.c)))
- {
- nombre[n] = tecla_pulsada.c; /* Caracter normal */
- outtextxy(x,466,&nombre[n]);
- n++;
- x+=8;
- }
- else
- {
- switch (tecla_pulsada.i)
- {
- case INTRO: /* Vuelta de carro o escape */
- if (n!=0)
- fin=1;
- else
- putch('\a');
- break;
-
- case ESCAPE:
- fin = 1; /* Fin de entrada */
- break;
-
- case RETROCEDER: /* Espacio-atras */
- if (x>375)
- {
- x-=8;
- putimage(x,465,borra_ch,0);
- nombre[n]='\0';
- n--;
-
- }
- else
- putch('\a');
- break;
-
- default:
- putch('\a');
- break;
- };
- };
- } while (!fin);
-
- if (tecla_pulsada.i==INTRO)
- {
- nombre[n]='.';
- nombre[n+1]='i';
- nombre[n+2]='m';
- nombre[n+3]='g';
- nombre[n+4]='\0';
-
- num_char=(imagesize(0,0,199,199)/sizeof(char));
-
- if((archivo=fopen(nombre,"rb"))==NULL)
- {
- putimage(1,465,limpia_texto,0);
- outtextxy(1,466," El fichero seleccionado no existe o esta dañado, pruebe de nuevo.");
- putch('\a');
- delay(2000);
- }
- else
- {
- fread(frac, sizeof(char) ,num_char,archivo);
- putimage(221,131,frac,0);
- putimage(1,12,limpia_texto,0);
- setcolor(9);
- outtextxy(1,13," Fichero Utilidad VISOR Javier Trujillo-1992");
- setcolor(11);
- outtextxy(85,13,nombre);
- fclose(archivo);
- };
- };
- setcolor(9);
- };
- }
-
- /***************************************************************************/
- /*************************** FIN DE FICHERO ****************************/
- /***************************************************************************/